<?php

/**
 * solicitudes actions.
 *
 * @package    auip
 * @subpackage revisiones
 * @author     David
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class revisionesActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    $this->aplicacion_becas = Doctrine_Core::getTable('AplicacionBeca')
      ->createQuery('a')->where("a.estado_actual", "si")
      ->execute();
  }

  public function executeShow(sfWebRequest $request)
  {
    $this->aplicacion_beca = Doctrine_Core::getTable('AplicacionBeca')->find(array($request->getParameter('beca_id'),
                                    $request->getParameter('usuario_id')));
    $this->forward404Unless($this->aplicacion_beca);
        
     $query = "SELECT da.beca_id, da.usuario_id, da.tipo_documento_id, da.ruta, t.id, t.nombre, da.nombre, da.email, da.telefono, da.cargo FROM documentos_aplicacion AS da, tipo_documento AS t WHERE t.id = da.tipo_documento_id AND da.usuario_id='".$request->getParameter('usuario_id')."' AND da.beca_id=".$request->getParameter('beca_id');

     $con = Doctrine_Manager::getInstance()->connection();//recuperamos el singleton de la conexión
    $st = $con->execute($query);//ejecutamos la consulta
    $this->docs = $st->fetchAll();//recuperamos las tuplas de resultado

  }
  
  public function executeCalificar(sfWebRequest $request)
  {
      $id_beca = $request->getParameter('beca_id');
      $usuario = $request->getParameter('usuario_id');
      if($request->getParameter('grupo1') == 1)
      {     //aprobar
          AplicacionBecaTable::entregoInformeSi($id_beca, $usuario);
      }
      if($request->getParameter('grupo1') == 2)
      {     //reprobar
          AplicacionBecaTable::entregoInformeNo($id_beca, $usuario);
      }
            $this->redirect('revisiones/index');
  }

  
  /**
  * Proceso que realiza la consulta de las Becas en el modulo Reportes
  *
  **/
  public function executeProcesadorAplicaciones(sfWebRequest $request)
  {    

     if ($request->isXmlHttpRequest()) 
    {   
        $query = "SELECT ap.beca_id, b.nombre, ap.usuario_id, (u.nombre || ' ' || u.apellidos) as nombres, e.nombre, e2.nombre, u.titulo, ap.actividades, ap.informacion_adicional, ap.fecha, ap.hora,  ap.estado_actual, ap.entrego_informe FROM aplicacion_beca as ap INNER JOIN entidad AS e2 ON (ap.entidad_destino=e2.id) INNER JOIN beca as b ON (ap.beca_id=b.id) INNER JOIN usuario AS u ON (ap.usuario_id=u.email)  INNER JOIN entidad AS e ON (u.entidad_origen=e.id) WHERE ap.estado_actual='si' ";
     
        if ($request->getParameter('parametro0') != '')
        {   
          $query = $query." AND (ap.usuario_id ILIKE '%".$request->getParameter('parametro0')."%' OR (u.nombre || ' ' || u.apellidos) ILIKE '%".$request->getParameter('parametro0')."%') ";
        }
        if ($request->getParameter('parametro1a') != '0' && $request->getParameter('parametro1a') != '')
        {   
          $query = $query." AND (ap.beca_id ='".$request->getParameter('parametro1a')."') ";
        }
        if ($request->getParameter('parametro1') != '')
        {   
          $query = $query." AND (b.nombre ILIKE '%".$request->getParameter('parametro1')."%') ";
        }
        if ($request->getParameter('parametro2') != '')
        {   
          $query = $query." AND ap.estado_actual ILIKE '%".$request->getParameter('parametro2')."%' ";
        }
        if ($request->getParameter('parametro3') != '')
        {   
          $query = $query." AND ap.entrego_informe ILIKE '%".$request->getParameter('parametro3')."%' ";
        }
        $query = $query." ORDER BY ap.usuario_id ";
        
    }
        $con = Doctrine_Manager::getInstance()->connection();//recuperamos el singleton de la conexión
        $st = $con->execute($query);//ejecutamos la consulta
        $this->aplicaciones = $st->fetchAll();//recuperamos las tuplas de resultados
        $this->listas = array('ID beca', 'Nombre de la convocatoria', 'Email de usuario', 'Nombre Completo de usuario', 'Entidad origen', 'Entidad destino', 'Titulo Universitario', 'Actividades a realizar', 'Informacion adicional' , 'Fecha', 'Hora' , 'Estado actual de la solicitud', 'Entrego informe?');
        
  }

}
